package com.wyw.design.model.learning.behavioral.interpreter;

/**
 * @Title   测试类
 * @Description 现在我们以一个最简单的例子：a+b，我们要做的就是解释执行这段语法文本，
 *              a 和 b是两个字母也叫做两个变量，我们需要使用一个 “+” 符号来将这俩变量连接起来，
 *              假设我们的语言并不知道符号 "+"是什么作用，具体作用需要我们去实现（假设我们并不知道 + 其实是加法的意思），
 *              示例比较简单，只是为了说明解释器模式没别的意思。
 * @Author Mr Wu yewen.wu.china@gmail.com
 * @Date 2023/4/17 17:18
 * Update History:
 * Author        Time            Content
 */
public class InterpreterClient {
    public static void main(String[] args) {
        AbstractExpression left = new TerminalExpression(12);
        AbstractExpression right = new TerminalExpression(34);
        AbstractExpression calExpression = new NonTerminalExpression(left, right);
        Context context = new Context("+");
        Integer result = calExpression.interpreter(context);
        System.out.println(result); // 46
    }
}
